package com.bd.scm.domain.dto.repairAttendance;

import com.alibaba.fastjson.JSONObject;
import com.bd.scm.domain.dto.user.UserOfLeaveBatchDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 补出勤保存接收DTO.
 *
 * @author Mason
 * @version 1.0
 * @since 2019/12/13 9:22
 */
@Data
@ApiModel(value = "补出勤信息")
public class AddRepairBatchDto {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty( value = "开始日期", notes = "开始日期", dataType = "Date", position = 1, required = true)
    private Date startDate;

    @ApiModelProperty( value = "结束日期", notes = "结束日期", dataType = "Date", position = 2, required = true)
    private Date endDate;

    @ApiModelProperty( value = "开始时间", notes = "开始时间", dataType = "Integer", position = 3, required = true)
    private Integer startTime;

    @ApiModelProperty( value = "结束时间", notes = "结束时间", dataType = "Integer", position = 4, required = true)
    private Integer endTime;

    @ApiModelProperty( value = "一级审批人", notes = "一级审批人,个人申请传0", dataType = "Long", position = 5, required = false)
    private Long firstdApprover;

    @ApiModelProperty( value = "二级审批人", notes = "二级审批人,个人申请传0", dataType = "Long", position = 6, required = false)
    private Long secondApprover;

    @ApiModelProperty( value = "补出勤事由", notes = "补出勤事由", dataType = "String", position = 7, required = true)
    private String description;

    @ApiModelProperty( value = "补出勤人员ID", notes = "多人用逗号隔开", dataType = "String", position = 8, required = true)
    private String userIds;

    /**
     * 申请类型
     * 1：个人申请
     * 2：批量申请
     */
    @ApiModelProperty( value = "申请类型", notes = "申请类型， 1：个人申请  2：批量申请", dataType = "Integer", position = 9, required = true)
    private Integer applyType;

    @ApiModelProperty( value = "附件名称数组", notes = "附件名称数组", dataType = "List", position = 10, required = false)
    private List<String> uploadFileNames;

    /**
     * 补出勤人员表格  选择的人员
     */
    @ApiModelProperty(hidden = true)
    private List<UserOfLeaveBatchDto> peopleData;

    /**
     * 单据ID
     */
    @ApiModelProperty(hidden = true)
    private Integer orderId;

    /**
     * 单号
     */
    @ApiModelProperty(hidden = true)
    private String orderNo;

    @ApiModelProperty(hidden = true)
    private String repairSelected;

    @ApiModelProperty(hidden = true)
    private List<JSONObject> workTime;

    @ApiModelProperty(hidden = true)
    private List<String> dateList;

    @ApiModelProperty(hidden = true)
    private List<JSONObject> dateTimeList;

    /**
     * 人数
     */
    @ApiModelProperty(hidden = true)
    private Integer peopleNum;

    @ApiModelProperty(hidden = true)
    private String lx = "";

    /**
     * 1：个人申请
     * 2：批量申请
     */
    @ApiModelProperty(hidden = true)
    private Integer isSingle;

    @ApiModelProperty(hidden = true)
    private String userSerial;

    /**
     * 操作人IP
     */
    @ApiModelProperty(hidden = true)
    private String pcIp;

    /**
     * 操作人计算机名
     */
    @ApiModelProperty(hidden = true)
    private String pcName;

    @ApiModelProperty( value = "补打卡类型", notes = "补打卡类型,0：PC端补打卡，1：补上班，2：补下班，3：补上下班", dataType = "Integer", position = 12, required = true)
    private Integer repairType;

}
